package cn.doitedu.day07

import cn.doitedu.day01.utils.SparkUtil
import com.alibaba.fastjson.JSON
import org.apache.spark.util.LongAccumulator

/**
 * @Date 22.4.6
 * @Created by HANGGE
 * @Description
 */
object C02_累加器_重复计算问题 {
  def main(args: Array[String]): Unit = {
    val sc = SparkUtil.getSc

    val rdd = sc.makeRDD(List(1, 2, 3, 4, 5))

    // 定义累加器
    val cnt: LongAccumulator = sc.longAccumulator("cnt")



    val rdd2 = rdd.foreach(e => {
      cnt.add(1)  // ADD("A")  ADD("B")
      e
    })
    println(s"行动算子执行前===================:  ${cnt.value}")
   /* rdd2.foreach(println)
    rdd2.foreach(println)*/
   // 行动后获取值
    println(s"行动算子执行后===================:  ${cnt.value}")  //[A,3]  [B,1]


  }

}
